package com.kofan.shelter.commons.util.common;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kofan.shelter.api.bean.JsonResult;


import java.io.Serializable;
import java.util.List;


public interface IKofanService<T, M extends  KofanBaseMapper<T>> extends IService<T> {
    /**
     * 系统日志-修改日志
     * @param query 查询条件
     * @return
     */
    JsonResult getByPage(BaseQuery query);

    JsonResult get(BaseQuery query);

    /**
     * 根据ID获取记录信息
     *
     * @param id 记录ID
     * @return
     */
    JsonResult info(String id);

    /**
     * 根据ID获取记录信息
     *
     * @param id 记录ID
     * @return
     */
    Object getInfo(Serializable id);

    /**
     * 根据实体对象添加记录
     *
     * @param entity 实体对象
     * @return
     */
    JsonResult add(T entity);

    /**
     * 根据实体对象添加记录
     *
     * @param entity 实体对象
     * @return
     */
    JsonResult addCrontab(T entity);

    /**
     * 根据实体对象更新记录
     *
     * @param entity 实体对象
     * @return
     */
    JsonResult update(T entity);

    /**
     * 根据实体对象更新记录
     *
     * @param entity 实体对象
     * @return
     */
    JsonResult updateCrontab(T entity);

    /**
     * 根据ID删除记录
     *
     * @param entity 实体对象
     * @return
     */
    JsonResult delete(T entity);


    JsonResult deleteCrontab(T entity);

    /**
     * 根据ID删除记录
     *
     * @param ids 记录ID
     * @return
     */
    JsonResult deleteByIds(String[] ids, String tableName);

    M getKofanBaseMapper();



}
